// pages/login/login.js
const app = getApp();
const storage = require('../../utils/storage');
const util = require('../../utils/util');
const api = require('../../utils/api');
const constant = require('../../utils/constant');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //获取全局变量 导航栏的高度statusBarHeight
    statusBarHeight: app.globalData.statusBarHeight,
    // 胶囊
    jiaonang: app.globalData.jiaonang, 
    navigationHeight: app.globalData.navigationHeight,
    BASEURLWWW:constant.BASEURLWWW,
    // 软键盘高度
    keywordHeight: 300,
    // 当前登录方式
    loginStatus: null,
    // 方式选择
    choose: true,
    // 手机登录
    phoneShow:false,
    phoneNumber:  null,
    codeNumber: null,
    // 账号密码登录
    passwordShow: false,
    // 头部标题
    headerTitle: '登录',
    codeInfo: false,
    codeTime: 30
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      loginStatus: wx.getStorageSync(storage.LOGINSTATUS)
    })  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  // 返回上一级
  back:function(){
    if(!this.data.choose){
      this.setData({
        choose:true,
        phoneShow:false,
        passwordShow:false,
        headerTitle:'登录'
      })
    }else{
      wx.reLaunch({
        url: '/pages/personal/personal',
      })
    }
    
  },
  // 获取焦点
  getFocus:function(e){
    this.setData({
      keywordHeight: e.detail.height*2
    })
  },
  // 失去焦点
  getBlur:function(e){
    this.setData({
      keywordHeight:  300
    })
  },
  // 获取手机号
  getPhoneFocus:function(e){
    this.setData({
      phoneNumber: e.detail.value
    })
  },
  // 手机号登录
  handlePhone:function(e){
    this.setData({
    choose: false,
    phoneShow:true,
    passwordShow: false,
    headerTitle: '手机号登录'
    })
  },
  handlePassword:function(e){
    this.setData({
      choose: false,
      phoneShow:false,
      passwordShow: true,
      headerTitle: '账号密码登录'
    })
  },
  // 获取验证码
  getCodeFocus:function(e){
    this.setData({
      codeNumber: e.detail.value
    })
  },
  // 获取手机验证码
  getPhoneCode:function(e){
    let that = this;
    if(util.checkEmpty(this.data.phoneNumber)){
      wx.showToast({
        title: '手机号不能为空！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }
    if(!util.checkPhone(this.data.phoneNumber)){
      wx.showToast({
        title: '手机号不正确！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }
    api.getPhoneCode(this.data.phoneNumber).then(res => {
      if(res.code == 0){
        wx.showToast({
          title: res.msg,
          icon: 'none',
          duration: 1500
        })
        let n = 30;
        let timer = setInterval(function(){
          n--;
          that.setData({
            codeInfo: true,
            codeTime: n--
          })
          if(n<=0){
            clearInterval(timer);
            that.setData({
              codeInfo: false,
              codeTime: null
            })
          }
        },1000)
        
      }
    })
  },
  // 微信授权登录
  wechatLogin:function(){
    api.login().then(res => {
      if(res.code == 0){
        storage.setLoginStatus(constant.WECHATLOGIN);
        wx.reLaunch({
          url: '/pages/index/index',
        })
      }else{
        wx.showToast({
          title: res.msg,
          icon: 'none'
        })
      }
      
    });
  },
  // 手机号登录提交
  phoneLoginSubmit(e){
    if(util.checkEmpty(e.detail.value.phone)){
      wx.showToast({
        title: '手机号不能为空！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }
    if(!util.checkPhone(e.detail.value.phone)){
      wx.showToast({
        title: '手机号不正确！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }
    if(util.checkEmpty(e.detail.value.code)){
      wx.showToast({
        title: '验证码不能为空！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }
    api.checkPhoneCode(e.detail.value.phone,e.detail.value.code).then(res => {
      if(res.code == 0){
        api.phoneLogin(e.detail.value.phone,e.detail.value.code).then(res => {
          if(res.code == 0){
            this.loginSuccess(res,2);
          }else{
            wx.showToast({
              title: res.msg,
              icon: 'none',
              duration: 1500
            })
          }
        })
      }else{
        wx.showToast({
          title: res.msg,
          icon: 'none',
          duration: 1500
        })
      }
    })
  },
  // 账号密码登录提交
  passwordLoginSubmit(e){
    if(util.checkEmpty(e.detail.value.username)){
      wx.showToast({
        title: '账号不能为空！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }
    if(util.checkEmpty(e.detail.value.password)){
      wx.showToast({
        title: '密码不能为空！',
        icon: 'none',
        duration: 1500
      })
      return false;
    }

    api.passwordLogin(e.detail.value.username,e.detail.value.password).then(res => {
      this.loginSuccess(res,3);
    })
  },
  // 登录成功
  loginSuccess(res,loginStatus){
    wx.showToast({
      title: res.msg,
      icon: 'none',
      duration: 1500
    })
    if(res.code == 0){
      storage.setJwtToken(res.data.data.token);
      storage.setLoginStatus(loginStatus);
      wx.reLaunch({
        url: '/pages/personal/personal',
      })
      // api.getUserDetail().then(res => {
      //   if(res.code == 0){
      //     if(res.data.avatar_url != ""){
      //       storage.setAvatarUrl("http://www.changlejiuhang.com/" + res.data.avatar_url);
      //     }else{
      //       storage.setAvatarUrl(res.data.avatar_url);
      //     }
      //     storage.setNickname(res.data.nick_name);
      //     wx.reLaunch({
      //       url: '/pages/personal/personal',
      //     })
      //   }
      // })
    }
  }
})